// 实现 JavaScript 的 Array.includes 方法，这个类型接受两个参数，返回的类型要么是 true 要么是 false。
// 比较两个值是不是相等?

type IsEqual<X, Y> =
  (<T>() => T extends X ? true : false) extends (<T>() => T extends Y ? true : false) ? true : false

type Includes<U extends readonly any[], T> =
  U extends [infer F, ...infer R] ? IsEqual<F, T> extends true ? true : Includes<R, T> : false;
type isPillarMen = Includes<['Kars', 'Esidisi', 'Wamuu', 'Santana'], 'Dio'> // expected to be `false`
// 问题 这个怎么使用? type 就只有一个值的.


